package com.hxk.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;

import com.hxk.mapper.UserMapper;
import com.hxk.pojo.User;
import com.hxk.service.UserService;

@Service
public class UserServiceImpl implements UserService {

	@Autowired
	private UserMapper userMapper;
	
	@Override
	public User selById(int id) {
		return this.userMapper.selById(id);
	}

	@Override
	/**
	 * @Cacheable注解
	 * 使用ehcache缓存
	 * 属性介绍：
	 * value：如果value不写名称，则使用ehcache默认缓存配置方案
	 * Key 属性：给存储的值起个名称。在查询时如果有名称相同的，那么则知己从缓存中将数据返回
	 */
	@Cacheable(value="users",key="#user.username")
	public List<User> selAll(User user) {
		return this.userMapper.selAll(user);
	}

	@Override
	/**
	 * @CacheEvict注解
	 * 清空ehcache缓存
	 * 属性介绍：
	 * value：指定要清空的缓存名称
	 * allEntries：清除所有内容
	 */
	@CacheEvict(value="users", allEntries=true)
	public int addUser(User user) {
		return this.userMapper.addUser(user);
	}

}
